/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package almacensinproc;

/**
 *
 * @author eneko
 */

//Imports para que el Almacen actúe como cliente RMI.
import java.net.MalformedURLException;
import java.rmi.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import aso.upna.cancion.*;
import java.io.Serializable;
import javax.naming.NamingException;
//import System.Runtime.Remoting.RemotingException;
import java.lang.System.*;


public class AlmacenSinProcesar implements Serializable{

    private String filename;

    public AlmacenSinProcesar(String filename){
        this.filename=filename;
    }

    public String getFilename(){
        return filename;
    }


    /*
     * El almacén de datos sin procesar es el que es cliente
     * de la clase que suministra los metadatos
     *
     * Ahora tenemos que leer el objecto que nos han mandado.
     * Opciones
     * A)Leer el objeto que nos han mandado entero.
     * B)Que nos hayan pasado la información que necesitamos a base de Strings.
     */
    public void execRemote(int port)throws NamingException{
        String[] datos_rec=new String[5];

        ProcessFile pf=new ProcessFile(getFilename());
        try {
            Inter ser = (Inter) Naming.lookup("rmi://localhost:"+port+"/metadatos");
            datos_rec=ser.getMetadata();
            System.out.println("DATOS RECIBIDOS!");

            //Bucle que imprime en un fichero los datos que hemos recibido.
            for(String el:datos_rec)
                pf.write(el+"\t");
            
        } catch (NotBoundException ex) {
            Logger.getLogger(AlmacenSinProcesar.class.getName()).log(Level.SEVERE, null, ex);
        } catch (MalformedURLException ex) {
            Logger.getLogger(AlmacenSinProcesar.class.getName()).log(Level.SEVERE, null, ex);
        } catch (RemoteException ex) {
            Logger.getLogger(AlmacenSinProcesar.class.getName()).log(Level.SEVERE, null, ex);
        }
        
    }

    public static void main(String s[]) throws NamingException{
        AlmacenSinProcesar alsp=new AlmacenSinProcesar("datos_rec_rmi.txt");
        alsp.execRemote(1084);
        
    }
}
